package com.pig4cloud.pigx.contract.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.pig4cloud.pigx.common.customize.utils.serializer.BigDecimalToPlainStringSerializer;
import com.pig4cloud.pigx.contract.annotation.SetScaleMainCurrency;
import com.pig4cloud.pigx.contract.annotation.SetScaleTokenCurrency;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 */
@Data
public class ContractHistoryTradeVO {

	/**
	 * 主键
	 */
	@ApiModelProperty("主键")
	@JsonSerialize(using = ToStringSerializer.class)
	private Long id;

	/**
	 * 创建时间
	 */
	private LocalDateTime createTime;

	/**
	 * 合约（币对） 名称
	 */
	private String symbolName;
	/**
	 * 成交价格
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	@SetScaleMainCurrency
	private BigDecimal price;
	/**
	 * 成交数量
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	@SetScaleTokenCurrency
	private BigDecimal num;

	/**
	 * 成交数量（U本位）
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	@SetScaleTokenCurrency
	private BigDecimal currencyNum;

	/**
	 * 手续费
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal handlingFee;

	/**
	 * 收益（已实现盈亏）
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	@SetScaleMainCurrency
	private BigDecimal profit;

	/**
	 * 订单方向（0做多、1做空）
	 */
	private Integer side;

	/**
	 * 订单方向 翻译后
	 */
	private String sideCn;

	/**
	 * 订单类型（0市价单、1限价单、2强平单）
	 */
	private Integer orderType;

	/**
	 * 订单类型 翻译后
	 */
	private String orderTypeCn;

	/**
	 * 操作类型（0开仓、1平仓）
	 */
	private String operationType;


	/**
	 * 主币名称
	 */
	@ApiModelProperty(value = "主币名称")
	private String mainCurName;

	/**
	 * 外币名称
	 */
	@ApiModelProperty(value = "外币名称")
	private String tokenCurName;

	/**
	 * 张数
	 */
	@JsonSerialize(using = BigDecimalToPlainStringSerializer.class)
	private BigDecimal sheet;

}
